From: Stefan Kangas Date: Fri, 13 Nov 2020 18:15:21 +0000 (+0100) Subject: Say which command shadows a key binding X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1^2~5^2~18^2~5320 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=fb9326b45c769f83b619278eae41f680577d1b05;p=emacs.git Say which command shadows a key binding * src/keymap.c (describe_vector): Say which command shadows this binding. (Bug#9293) * test/src/keymap-tests.el (help--describe-vector/bug-9293-one-shadowed-in-range): Adapt test. --- diff --git a/src/keymap.c b/src/keymap.c index aaba2ac838a..e22eb411f63 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -3223,7 +3223,13 @@ describe_vector (Lisp_Object vector, Lisp_Object prefix, Lisp_Object args, if (this_shadowed) { SET_PT (PT - 1); - insert_string (" (binding currently shadowed)"); + static char const fmt[] = " (currently shadowed by `%s')"; + USE_SAFE_ALLOCA; + char *buffer = SAFE_ALLOCA (sizeof fmt + + SBYTES (SYMBOL_NAME (shadowed_by))); + esprintf (buffer, fmt, SDATA (SYMBOL_NAME (shadowed_by))); + insert_string (buffer); + SAFE_FREE(); SET_PT (PT + 1); } } diff --git a/test/src/keymap-tests.el b/test/src/keymap-tests.el index e467b1f0551..6411cd1f0d4 100644 --- a/test/src/keymap-tests.el +++ b/test/src/keymap-tests.el @@ -58,7 +58,6 @@ (let* (menu-item-filter-ran (object `(menu-item "2" identity :filter ,(lambda (cmd) - (message "foo") (setq menu-item-filter-ran t) cmd)))) (keymap--get-keyelt object t) @@ -213,14 +212,15 @@ commit 86c19714b097aa477d339ed99ffb5136c755a046." map)) (shadow-map (let ((map (make-keymap))) (define-key map "f" 'bar) - map))) + map)) + (text-quoting-style 'grave)) (with-temp-buffer (help--describe-vector (cadr orig-map) nil #'help--describe-command t shadow-map orig-map t) (should (equal (buffer-string) " e foo -f foo (binding currently shadowed) +f foo (currently shadowed by `bar') g .. h foo ")))))